<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		cookie 函数分装
		
		<div id="box" style="behavior: :url(#default#userDate);"></div>
	</body>
	
	<script>
		//cookie函数分装
	/*	
			完整格式为name=value;[expires=data];[path=path];[domain=somewhere.com];[secure]
		ps：中括号是可选的，name=value是必选的。*/
		
		//设置cookie
		function setCookie(name,value,expires,path,domain,secure){
			var cookieName = encodeURIComponent(name)+'='+encodeURIComponent(value);
			if(expires instanceof Date){ //过期天数
				cookieName+=';expires='+expires;
			}if(path){
				cookieName+=';path='+path;
			}if(domain){
				cookieName+=';domain='+domain;
			}if(secure){
				cookieName+=';secure';
			}
		
		document.cookie =cookieName;
		}
		
		//过期时间验证
		function setCookieDate(day){
			var date = null;
			if(typeof day == 'number'&&day>0){
				date = new Date();
				date.setDate(date.getDate()+day);
			}else{
				throw new Error('您传递的天数不合法！必须是数字且大于0')
			}
			return date;
		//	return date.toGMTString();//返回字符串时间格式
		}
		
		//获取cookie;通过键获取值
		function getCookie(name){
			var cookieName = encodeURIComponent(name)+'=';
			var cookieStart = document.cookie.indexOf(cookieName);//得到位置,不存在-1
			var cookieValue = null;
			if(cookieStart>-1){
				var cookieEnd =document.cookie.indexOf(';',cookieStart);//以;结束的位置
				if(cookieEnd==-1){
					cookieEnd =document.cookie.length;
				}
					
				cookieValue =decodeURIComponent(document.cookie.substring(cookieStart+cookieName.length,cookieEnd)) ;
				
			}
			return cookieValue;
		}
		
		//调用
		
		setCookie('user','李四',setCookieDate(2));
		alert(getCookie('user'));
		setCookie('url','baidu.com');
		alert(getCookie('url'));
		
		
		//cookie 的局限性
	//	第一:每个特定的域名下最多生成20个cookie(不同浏览器有区别)
	//	ie6以下最多20个,ie7以后最多50个,火狐最多50个,opera最多30个;safari和chrome没有硬性限制
	//超出后 ie和opera 会近期最少使用的，火狐firefox会随机清理。
	//第二
	//cookie 的最大存储约为4096字节（4K）,一般不超过4095个字节
	//第三 cookie 存储在客户端的文本文件，所以特别重要的和敏感的数据不建议保存在cookie中
	
	
	//其他数据存储
	//比如 ie 的 userDate属性
	
	
	//web存储	js提供了sessionStorage 和globaStorage
	//在html5中 localStorage 取代了globaStorage
      //localStorage  和sessionStorage
	
	//存储和获取
	sessionStorage.setItem('name','lee');
	alert(sessionStorage.getItem('name'));
	
	sessionStorage.removeItem('name');//删除
	
	//写法2
	sessionStorage.abc='wang';
	alert(sessionStorage.abc);
	sessionStorage.removeItem('abc');//删除
	
//	localStorage的用法和 sessionStorage一模一样
	//这两个对象都是永久保存在缓存中，需要手动清除和清理浏览器缓存，容量大小为2.5M 到5M(浏览器不同)
	
	
	
	</script>
</html>
